package com.sky.service.common;

import com.sky.dto.DishDTO;
import com.sky.dto.DishPageQueryDTO;
import com.sky.pojo.Dish;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.vo.DishVO;

import java.util.List;

/**
 * 菜品业务逻辑层
 *
 * @Author: Zhy
 * @Date: 2025-01-19 21:28
 * @Version: 1.0
 */
public interface DishService {

	/**
	 * 新增菜品
	 *
	 * @return:
	 * @param:
	 */
	Result<String> addDish(DishDTO dishDTO);

	/**
	 * 条件分页查询
	 * 
	 * @return: 
	 * @param: 
	 */
	Result<PageResult<DishVO>> pageQueryDish(DishPageQueryDTO dishPageQueryDTO);

	/**
	 * 根据ID查询菜品
	 *
	 * @return:
	 * @param:
	 */
	Result<String> deleteDishById(List<Long> ids);

	/**
	 * 根据ID查询菜品
	 *
	 * @return:
	 * @param:
	 */
	Result<DishVO> getDishAndFlavorsById(Long id);

	/**
	 * 更新菜品及其口味
	 * 
	 * @return: 
	 * @param: 
	 */
	Result<String> updateDishAndFlavors(DishDTO dishDTO);

	/**
	 * 根据分类ID查询所有菜品
	 *
	 * @return:
	 * @param:
	 */
	Result<List<Dish>> findAllDish(Long categoryId);

	/**
	 * 根据ID更新菜品状态
	 * 
	 * @return: 
	 * @param: 
	 */
	Result<String> updateDishStatus(Long status, Integer id);
}
